/* ================================================================
*   Copyright (C) 2020 All rights reserved.
*
*   文件名称：xcommon_def.h
*   创 建 者：xunmenglong
*   创建日期：2020年12月02日
*   描    述：一些项目中经常会用到的常用宏定义
*
================================================================ */


#ifndef XCOMMON_DEF_H
#define XCOMMON_DEF_H

#include <unistd.h>
#include <stdlib.h>

namespace xutil {

// 微秒时间差
#ifndef TIMEUSDIFF
#define TIMEUSDIFF(s, e)    ((e.tv_sec-s.tv_sec)*1000000 + e.tv_usec- s.tv_usec)
#endif

// 毫秒时间差
#ifndef TIMEDIFF
#define TIMEDIFF(s, e)  (((e.tv_sec)-(s.tv_sec))*1000 + ((e.tv_usec) - (s.tv_usec))/1000)
#endif

// 告诉编译器大概率走这个分支, 提高运行效率
#ifndef likely
#define likely(x)       __builtin_expect(!!(x), 1)
#endif

// 告诉编译器大概率不走这个分支
#ifndef unlikely
#define unlikely(x)     __builtin_expect(!!(x), 0)
#endif


} // namespace xutil

#endif
